package com.xy.xymall.product.vo;

import com.xy.xymall.product.entity.SkuImagesEntity;
import com.xy.xymall.product.entity.SkuInfoEntity;
import com.xy.xymall.product.entity.SpuInfoDescEntity;
import com.xy.xymall.product.entity.SpuInfoEntity;
import lombok.Data;
import lombok.ToString;

import java.util.List;

/**
 * @author XY
 * @version 1.0.0
 * @ClassName SkuItemVo.java
 * @createTime 2020年10月12日 20:29:00
 * 商品详情VO
 */
@Data
public class SkuItemVo {
    /**
     * 1、sku基本信息
     */
    SkuInfoEntity info;
    /**
     * 2、sku图片信息,数组格式，每个sku有多个图片
     */
    List<SkuImagesEntity> images;
    /**
     * 是否有货
     */
    boolean hasStock=true;
    /**
     * 3、获取spu销售属性组合
     */
    List<SkuItemSaleAttrVo> saleAttrs;
    /**
     * 4、获取spu的介绍
     */
    SpuInfoDescEntity desc;
    /**
     * 5、获取spu规格参数信息
     */
    List<SpuItemAttrGroupVo> groupAttrs;
    /**
     * @Author XY
     * @Date 2020/10/12 20:46
     * 销售属性VO
     */
    @Data
    public static class SkuItemSaleAttrVo{
        private Long attrId;
        private String attrName;
        private List<AttrValueWithSkuIdVo> attrValues;
    }
    /**
     * @author XY
     * @date 2020/10/13 16:19
     * 销售属性对应哪些sku的vo 例：attrValue：白色，skuIds：3，5，6；表示颜色为白色的sku有3，5，6号
     * 选择颜色和版本进行跳转时需要
     */
    @Data
    public static class AttrValueWithSkuIdVo{
        private String attrValue;
        private String skuIds;
    }
    /**
     * @Author XY
     * @Date 2020/10/12 20:46
     * 规格参数VO
     */
    @ToString
    @Data
    public static class SpuItemAttrGroupVo{
        private String groupName;
        private List<SpuBaseAttrVo> attrs;
    }

    /**
     * @Author XY
     * @Date 2020/10/12 20:46
     * 每个规格参数下的属性
     */
    @ToString
    @Data
    public static class SpuBaseAttrVo{
        private String attrName;
        private String attrValue;
    }
}
